package com.dz.tool.Dao.Master;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.dz.tool.Vo.OracleField;
import java.util.List;
import java.util.Map;

@Mapper
public interface MasterOracleMapper {

    // 执行Oracle语句
    String creatOracle(@Param("sql") String sql);

    List<Map<String,Object>> creatOracleMap(@Param("sql") String sql);

    // 根据用户名获取所有数据表的名字
    List<String> selectTableNameAll();

    // 根据库名获取所有数据表的名字
    List<String> selectTableNameAllToDataBase(@Param("DataBaseName") String DataBaseName);

    // 根据表名获取字段数据
    List<OracleField> selectTableNameOnCNAndTP(@Param(Constants.WRAPPER) Wrapper<Object> wrapper);

    // 根据表名获取主键
    List<String> selectTableId(@Param("tableName")String tableName);

    // 根据表名获取注释
    List<OracleField> selectCommot(@Param("tableName")String tableName);

    // 根据表名获取数据
    List<Map<String,Object>> selectData(@Param("tableName")String tableName);

    List<Map<String,Object>> selectData2(@Param("tableName")String tableName,@Param("fileds")String fileds);

    // 根据表名获取数据量
    Integer selectDataCount(@Param("tableName")String tableName);

    // 根据表名获取索引字段
    List<String> selectFiledIndex(@Param("tableName")String tableName);

    // 获取空数据表
    List<String> selectCountZeroTable();

    // 查询用户所属的表空间
    String selectTableSpace(@Param("user")String user);

    // 查询用户下的序列
    List<Map<String,Object>> selectSequence(@Param("user")String user);

    // 查询 用户下 某个表 的 所有触发器
    List<Map<String,Object>> selectTriggers(@Param("user")String user,@Param("tableName")String tableName);

    // 查询 用户下 的 所有触发器
    List<Map<String,Object>> selectTriggersList(@Param("user")String user);

    // 获取oracle的创建表语句
    String selectTableCreatSql(@Param("tableName")String tableName);

    //获取splace
    String selectTableSplace(@Param("dataNeme") String dataNeme,@Param("tableName")String tableName);

    // 获取表注释
    List<Map<String,String>> selectTableComment();

    List<String> selectPROD();



}
